package com.roamer.rest;

import com.roamer.rest.ResultCode.SuccessCode;
import lombok.ToString;

/**
 * API 正确处理响应码
 * <ul>
 * <li>2** ： 成功，操作被成功接收并处理</li>
 * </ul>
 *
 * @author roamer
 * @version V1.0
 * @date 2019/01/17 11:14
 */
@ToString
public enum ISuccessCode implements SuccessCode {


    /**
     * 200 OK - [GET/PUT]：成功返回请求的数据，该操作是幂等的（Idempotent）
     */
    OK(20000, "成功"),
    C20001(20001, "资源操作成功"),

    /**
     * 201 CREATED - [POST]：资源新建成功。
     */
    C20100(20100, "资源创建成功"),

    /**
     * 202 Accepted - [*]：表示一个请求已经进入后台排队（异步任务）。
     */
    C20200(20200, "资源处理中"),

    /**
     * 204 NO CONTENT - [PUT/PATCH/DELETE]：资源操作成功但不需要返回任何实体内容
     */
    C20400(204000, "资源操作成功"),

    /**
     * 205 Reset Content - [PUT/PATCH/DELETE]：类似 204，但是要求请求者重置视图
     */
    C20500(205000, "资源操作成功"),

    ;

    /** 状态码 */
    private final int code;

    /** 提示信息 */
    private final String message;

    ISuccessCode(int code, String message) {
        this.code = code;
        this.message = message;
    }

    @Override
    public int getCode() {
        return code;
    }

    @Override
    public String getMessage() {
        return message;
    }
}
